package cn.jilian.trans.bizz.service;

import java.util.Map;

import cn.jilian.common.dto.PageInfo;
import cn.jilian.common.dto.PageResult;
import cn.jilian.trans.bizz.dto.Contract;

/**
 * 物流合同服务
 * */
public interface ContractService {
	
	/**
	 * 生成物流合同
	 * @param orderId 货源订单
	 * @param transId 报价单位
	 * @param tplId 合同模板ID(合同原件ID)
	 * */
	long generate(long orderId,long transId,long tplId);
	
	/**
	 * 合同签名
	 * @param contractId 合同编号
	 * @param signerId 签名者ID
	 * @param data 签名保存数据
	 * @param metaId 元ID
	 * */
	int sign(long contractId,long signerId,Map<String,Object> data,long metaId);
	
	
	/**
	 * 依据报价单IＤ查询合同
	 * */
	Contract  queryByPostId(long postId);
	
	/**
	 * 分页查询
	 * */
	PageResult<Contract> queryAllContracts(PageInfo page);
	
	/**
	 * 查询机构可查询的合同列表
	 * */
	PageResult<Contract> queryAllContracts(long unid,PageInfo page);
	
	/**
	 * 查询货源商可查询的合同列表
	 * */
	PageResult<Contract> querySupplierContracts(long unid,PageInfo page);
	
	/**
	 * 查询物流公司可查询的合同列表
	 * */
	PageResult<Contract> queryTransContracts(long unid,PageInfo page);
	
	/**
	 * 分页查询机构制定时间段已签订完成的合同
	 * */
	PageResult<Contract> queryHandledContracts(long unid,PageInfo page,String startDate,String endDate);
	
	/**
	 * 分页查询机构指定时间段待签订的合同
	 * */
	PageResult<Contract> queryUnHandledContracts(long unid,PageInfo page,String startDate,String endDate);

}
